An autonomous vehicle is a motorized vehicle that can operate without human conduction. An exemplary autonomous vehicle includes a plurality of sensor systems, wherein the sensor systems can include, but are not limited to, a lidar sensor system, a camera sensor system, and a radar sensor system. The autonomous vehicle navigates over roadways based upon sensor signals output by the sensor systems.
Unexpected events often arise when vehicles (e.g., both human-conducted vehicles and autonomous vehicles) travel over travel paths. Exemplary unexpected events can include an animal running into a roadway, a vehicle unexpectedly changing lanes, a stoplight quickly altering from green to red, etc. Due to the possibility of occurrence of unexpected events, sensor system outputs generated by the aforementioned sensor systems should be processed quickly to allow for the autonomous vehicle to react to such unexpected events. Processing sensor system outputs includes object classification, wherein a sensor system output (e.g., an image) is provided to an object classifier system, and further wherein the object classifier system is configured to assign labels to objects represented in the sensor system output (e.g., where the labels indicate whether the object is a static object, a car, a truck, a bus, a bike, a pedestrian, etc.).
Processing sensor system output generated by sensor systems of an autonomous vehicle, however, is non-trivial, at least partially due to: 1) how sensor systems generate sensor systems outputs; and 2) inefficiencies of classifier systems when assigning labels to objects represented in sensor system outputs. In an exemplary embodiment, an autonomous vehicle includes four image sensor systems positioned about the autonomous vehicle, wherein the image sensor systems asynchronously generate images at a certain rate (e.g., 10 Hz). As mentioned previously, these images should be processed as quickly as possible. The asynchronous nature in which the image sensor systems output images, however, renders it difficult for an object classifier system to process the images efficiently (wherein processing an image involves receiving the image, assigning labels to objects represented in the image, and outputting the labels). Specifically, the object classifier system is unable to start processing one image until the processing of another image (previously provided to the object classifier system) has completed. An exemplary approach to allow for real-time processing of sensor system outputs is to overprovision computing resources—for instance, each image sensor system can have a respective object classifier system assigned thereto, such that an object classifier system is dedicated to processing images output by a single image sensor system. Such an approach is an inefficient use of computing resources, as each object classifier system may remain idle for relatively long periods of time.